System and method for utilizing non-local information to constrain robot services

ABSTRACT

A method for constraining movements of a robot comprises: obtaining digitally stored dynamic building data describing a set of one or more temporary conditions, the dynamic building data comprising, for each temporary condition of the set of one or more temporary conditions, a location of the temporary condition and a description of the temporary location; updating, from the dynamic building data, digital cost data associated with one or more features of a digital map by calculating, for each temporary condition of the set of one or more temporary conditions, an increased cost of navigation associated with the location of the temporary condition; in response to receiving a task that is associated with a destination location, determining a route of the robot to the destination location using the digital map based in part upon the location of each temporary condition and the increased cost associated with the location, the route not including at least a location of a particular temporary condition of the set of one or more temporary conditions; causing the robot to traverse to the destination location using the route.

BENEFIT CLAIM

This application claims the benefit under 35 U.S.C. § 120 as acontinuation of application Ser. No. 15/817,034, filed Nov. 17, 2017,which claims the benefit as a continuation of application Ser. No.15/598,130, now U.S. Pat. No. 9,844,879, filed May 17, 2017, the entirecontents of which are hereby incorporated by reference for all purposesas if fully set forth herein. The applicant(s) hereby rescind anydisclaimer of claim scope in the parent applications or the prosecutionhistory thereof and advise the USPTO that the claims in this applicationmay be broader than any claim in the parent application(s).

FIELD OF THE DISCLOSURE

The present disclosure relates to mobile digital computer-controlledrobots that autonomously navigate a bounded area and, more specifically,to computer-implemented techniques for defining bounded areas forautonomous mobile robot navigation.

BACKGROUND

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

Robots are no longer only used in manufacturing. Increasingly, robotshave been used in hospitality, medicine, and transportation of goods.Some robots, such as those designed and manufactured by Savioke, Inc. ofSan Jose, Calif., are wheeled machines that transport goods within acampus, such as a hotel or hospital. These robots are deployed bycomputer or human operators to complete a task, such as delivering hottowels to a guest room. Once deployed, a particular robot may navigate abuilding or a set of buildings from its current location to itsdestination.

In order to navigate to its destination, the robot uses data defining alayout of the campus or environment. The data may be stored in the formof a digital map of a campus, building, or floor within a building.However, statically defining an environment has the significant drawbackof requiring an update to data storage or memory of the robot when theenvironment changes as a result of construction, demolition, or changesin security or other operational policy. There is a need in the roboticsfield to digitally define an environment for robot operation throughother than static means.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:

FIG. 1 is a diagram of a networked environment in which a robot mayoperate, according to various embodiments.

FIG. 2 is a flowchart of an example process for using dynamic data toplan a route taken by a robot, according to some embodiments.

FIG. 3 is a portion of a pixel-level diagram of a robot-generated mapunder first conditions, according to various embodiments.

FIG. 4 is a portion of a pixel-level diagram of a robot-generated mapunder second conditions, according to various embodiments.

FIG. 5 is an example of a robot-generated map of a floor in a building,according to various embodiments.

FIG. 6 is an example user interface describing an anticipated route andestimated time of arrival, according to various embodiments.

FIG. 7 is a block diagram that illustrates a computer system upon whichan embodiment of the invention may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however,that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

1. General Overview

In one embodiment, digital computer controlled electro-mechanicalautonomous robots may be deployed, for example, within a building,between buildings, or within a campus to transport items between peopleor locations. For example, in a hotel, a robot may be programmed totransport a warm towel from a housekeeping area or front desk to aguest's room. To deliver the item to its destination, the robot uses adigitally stored map of the building to determine a route and tonavigate hallways, elevators, and other features of the environment. Dueto minor variations between the actual building and a building plan, arobot typically generates a robot-readable digital map of the actual,physical building by exhaustively navigating through the building beforebeing deployed on a specific task. The digital map data may be used todetermine routes of traversal of the robot to perform a particular task.In some cases a route may involve traversing exclusively indoor spaceinside a building or a plurality of buildings that are linked bycorridors, skyways, or other structures; in other cases the best routemay require the robot to temporarily exit an indoor environment andtravel outdoors to reach the destination.

Furthermore, building structures, environments and conditions may changedue to a variety of causes. These causes may include, for example,inclement weather, large events that attract large crowds, temporarydecorations and installations, construction zones for remodeling andrepairs, events that trigger sensors such as smoke detectors or moisturesensors, and maintenance events such as lawn watering and carpetcleaning. As examples, during rain it may be undesirable for the robotto traverse an exterior path between one or more buildings that is notcovered, and during snow an exterior path may become impassable for therobot. A robot may receive changing data, which may be termed dynamicbuilding description data or just dynamic building data, from electronicsensor systems, information feeds, networked online services such asweather services or computers, external scheduling systems, emergencyservices data and other sources. The dynamic building data may bereceived at the robot, or a server computer that manages the robot, viaAPI calls transmitted via HTTP, programmatic calls, or other means.

Embodiments have particular applicability to buildings or sets ofbuildings that feature exterior passages. Examples include singlebuildings that have an overall plan that is L-shaped, U-shaped, curved,or otherwise non-rectangular, in which a shortest or fastest path fromone point to another may involve traversing an exterior space, path,road, or breezeway. A set of one or more buildings may feature such anexterior traversal which, while useful for computing a shortest orfastest path, may be subject to obstruction or obstacles, adverseweather or other conditions.

Robots operate with locally stored information that enable the provisionof a service; among these resources are digitally stored maps thatcomprise one or more logical data layers that define available paths,corridors or hallways, elevators, roads or other traversal surfaces, aswell as fixed obstacles and pre-defined places. The performance ofrobots in delivering the service may be affected by changingenvironmental conditions, and hence may robots employ onboard or localsensors and stored program logic to adapt to conditions of theenvironment that differ from their stored information at the time oftraversing a route or performing a task; for example, adaptations mayinclude navigating safely around newly encountered obstacles, bothstationary and moving. An example of a stationary obstacle is a roomservice tray in a hallway outside a guest room. An example of a movingobstacle is a person or a second robot that is moving toward or around afirst robot.

To provide improved and extended services, the robot uses dynamicbuilding data to include a variety of non-locally stored, real-timeinformation from sources data including remote databases and real-timesensors external to the robot. As an example, information on currentweather conditions can enable a natural extension of indoor-basedservice robots by confirming that the device can (or cannot) safely andeffectively traverse between buildings located on campuses, throughunderground corridors, across sky bridges and using other means. Thereare inherent challenges traversing outdoor spaces that are eitherexcessively hot or open to inclement weather like dense fog, rain, andsnow. Some of the challenges with outdoor navigation are IR radiationblinding on-board navigation sensors, water ingress due to rain andpuddles, moisture collection on sensors, and snow affectingmaneuverability.

The dynamic building information may be received from outdoor sensors.For example, in one embodiment, digital temperature sensors, rain gaugesor other moisture sensors, and ambient light sensors provide digitaldata values to the robot. These sensors may be located on the robot, orwithin a local operating environment. When the sensors are separate fromthe robot, the sensors may be coupled via wireless networking interfacesto a host computer that periodically polls the sensors or periodicallyreceives data updates from the sensors, and then forms and transmits thedynamic building data to the robot. In another embodiment, dynamicbuilding data is formed under program control based upon periodicrequests for weather data to networked data sources such as the NationalWeather Service or others that use cloud hosting and open internetprotocols for communications.

Non-local environmental information is also valuable for optimizingrobot services that are performed indoors. For example, buildingcondition data can modify a digital map or navigation cost-map atspecified time periods that are associated with scheduled or recurringobstructions or obstacles. Example scheduled conditions that could berepresented in digitally stored dynamic building data include carpetcleaning, renovations to a hallway or other area that robots traverse,human social events for which human congestion of traversal paths isexpected for a time interval, banquet tables, bars, platforms, chairs,carts and other items specified in Banquet Event Orders (BEOs), orseasonal decorations resulting in static obstacles for a defined numberof weeks. Information about obstacles in association with time valuesmay be received from a building's infrastructure systems, banquetdepartment computers, or networked distributed sensors. For example, amoisture detector or humidity detector may generate a signal that couldbe interpreted as indicating that carpets in a particular area wererecently cleaned and are too wet for robot traversal.

In an embodiment, dynamic building data based upon local weather data isprocessed by the robot under program control to result in selecting anyof several possible responsive actions. In one embodiment, theresponsive action is to automatically limit inter-building movements.For example, during snow, rain or other inclement weather,inter-building service can be automatically made unavailable. Makingtraversal between buildings unavailable can comprise changing costvalues or weight values associated with digital path data in a digitalmap of a building or campus, for example. In another embodiment, theresponsive action may comprise generating and transmitting a weatherwarning, message or other notification, alone or in conjunction withmodifying cost values or weight values of the digital map. For example,a message or notification may be transmitted, generated or displayed,and generating a route or path using the digital map may be skipped orterminated. As one example, there may be no use in generating a path ifthe only available path would require traversing an outdoor space thatis covered with snow. In another embodiment, responsive action comprisesadjusting an estimated time of arrival that is calculated and/ordisplayed at an administrator console or operator center. In anotherembodiment, responsive action may comprise rejecting the performance ofa planned delivery or traversal.

Messages or notifications may be generated and transmitted, ordisplayed, using a display of the robot, an administrator console oroperator center. The operator may be required to have administrativeprivileges to override the weather warning. In some embodiments, a pathplanning algorithm considers the weather data and other data sources andprovides a changed or different path or route output based upon valuesof the data. For example, when the weather is good, the robot may use ashorter path that traverses an external unprotected space betweenbuildings or structures, while on days with bad weather the robot maytake a longer path to avoid the outdoors.

In an embodiment, a notification may inform the operator so a senderand/or receiver is informed if a delivery will be delayed or cannothappen. In an embodiment, based on the values of the dynamic buildingdata, one or more new ETA estimates are generated before or duringnavigation to the destination and may be provided in a notification.This information also may be communicated between robots that aredeployed on or near the same campus so that the other robots can plantheir routes accordingly.

Using these techniques, receiving and using the dynamic building data bythe robot itself improves the functioning of the robot itself. If therobot does not modify its behavior in light of changing conditions, therobot may become find itself in a location that it cannot navigate fromor may be damaged by moisture, unable to move through or in largecrowds, or from other hazards. By adapting its routes to currentconditions, the robot is able to complete navigating a route, avoidnavigating a route, and/or perform tasks.

2. Networked Environment

FIG. 1 is a diagram of an example networked environment in which a robotmay operate, according to various embodiments.

The networked environment 100 of FIG. 1 provides certain computinginfrastructure to support a robot 102, to allow the robot 102 to accessbuilding features such as locked doors or elevators, and to allow anoperator to communicate directly with the robot 102. The networkedenvironment 100 includes the robot and one or more computers that arelocal to the building or campus in which the robot is deployed. In someembodiments, remote computers may be included in the networkedenvironment 100. The local computers within the networked environment100 may be physically present in the building.

In this example, the robot 102 is an autonomous, wheeled,battery-powered electro-mechanical robot under control of a programmeddigital computer contained in the robot. The robot 102 moves using a setof wheels at a bottom of the robot and coupled to a drive mechanism thatoperates under stored program control. The robot 102 may move atvelocities appropriate to its environment, typically at a human walkingspeed, faster or slower. In some embodiment, in areas with less humanactivity, for example hallways where lights are turned off becausemotion sensors have not been recently activated, the robot 102 may moveat higher speeds. The wheels of the robot 102 may be selected forperformance on a variety of indoor and outdoor surfaces including tile,carpet, and concrete. In an embodiment, robot 102 may comprise a RELAYrobot, commercially available from SAVIOKE, INC. of San Jose, Calif.,but including the programmatic and functional features that aredescribed in this disclosure.

In some embodiments, robot 102 includes at least one storage compartmentthat can be electronically opened by the robot under program control foraccess by an operator or human at an origin or destination. The storagecompartment may be sized to hold items that are appropriate to theenvironment. For example, in hospitality applications, the storagecompartment may permit carrying any of: linens; toiletries; medications;magazines and reading materials; lost and found items such as wallets,keys, and personal electronic devices.

The storage compartment may have an electronic lock that is operable bythe robot 102 under program control. In some embodiments, the robot 102is programmed to open the storage compartment upon arriving at itsdestination or in response to an instruction or sensor when thedestination is reached. The instruction may include, for example, apasscode; a confirmation of the person's identity at the destination; anelectronic communication with a personal electronic device of the personreceiving the delivery via, for example, RFID or Bluetooth. The storagecompartment may include a scale, pressure switch, or other mechanism todetect the placement or removal of items in or from the storagecompartment, such that placing an item in the compartment depresses thescale or triggers the switch, and removing the item from the compartmentreleases the scale or the switch. A digital interface may gate or latcha signal from the scale or switch to instruct the computer in the robotthat an item was placed on or removed from the compartment.

In some embodiments, robot 102 includes a touchscreen or other digitalcomputer display device that provides a graphical user interface (GUI)to communicate messages to humans. Robot 102 may be programmed toreceive instructions in response to input received via the touchscreen.For example, instructions may include an instruction to open the storagecompartment, a response to a request for information presented by therobot during an autonomous mapping operation; a confirmation that theitem, or the correct item, is in the storage compartment and isdelivered. In some embodiments, robot 102 may include other inputmechanisms such as keyboards, buttons, switches, or audio sensors forvoice commands.

In an embodiment, the robot 102 includes a plurality of sensors forreceiving data about the building and its location within the building.These sensors may include, for example, laser sensors, Light Detectionand Ranging (LIDAR) position or motion sensors, 3D cameras, colorcameras, barometers, altimeters, accelerometers, and others. In anembodiment, the sensors collect data about an operating environment ofthe robot 102 that can be transformed under program control to form adigital model in memory of the environment and physical attributes ofthe environment such as obstructions or objects; dimensions of featuressuch as rooms, hallways, doors, and windows; and identification offeatures including staircases, elevators, doorways, signs, andfiducials. Feature identification also may include transitory featuresor movable objects such as room service trays, carts or other wheeledapparatus, and in general any object that could appear or be placed inan operating environment as a result of human activity. In anembodiment, a barometer detects an altitude of the robot 102 based ondigitally transforming a reading of ambient atmospheric pressure andprovides data that may be used, for example, to identify a floor onwhich the robot 102 is currently located if the environment ismulti-story. In an embodiment, the accelerometer provides data about thespeed and/or direction of the movement of the robot 102, alone or incombination with a digital compass.

In an embodiment, the robot 102 includes one or more network interfacesthat communicate with the computers within the networked environment100. The network interfaces may include interfaces that communicate viaWireless Fidelity (WIFI), 3G and/or 4G modems, Bluetooth, infrared, andlow-bandwidth radio. In some embodiments, the robot 102 uses a GlobalPositioning System (GPS) receiver and program control to determine itsgeographic location. In some embodiments, the robot 102 may communicatewith building features using the one or more network interfaces. Forexample, robot 102 may use wireless networking messages to communicatewith a compatible interface of an elevator control system in a buildingto open doors of elevator cars or to call and direct an elevator car.

In one embodiment, robot 102 executes digital mapping software andmaintains a digital map of an operation environment stored in memory.The mapping software, when executed, causes the robot 102 to generate arobot-readable map of its location and/or a route to a destination. Inan embodiment, the mapping software instructs the robot 102 to traverseor explore its environment using the onboard sensors. In an embodiment,based on the traversal, the mapping software generates a map of a flooror other environment. In an embodiment, data representing locations inthe environment, objects or obstacles may be stored in association withcost values or weight values.

In an embodiment, the environment includes a robot port having a robotport computer. The robot port is a device in which, or next to which,the robot 102 returns when not in use. In an embodiment, the robot portmay include connections to which the robot 102 can automatically connectand that charge a battery of the robot 102. For example, the robot andport may be structured to enable the robot to automatically contact thepower connections when the port is reached or mechanically engaged.

In an embodiment, the port further comprises a data interface and dataconnector to which the robot 102 may automatically connect or engagewhen the robot is in the port. Or, the robot 102 may have internalwireless networking circuitry that is interfaced to its CPU andappropriate software to permit the robot to establish a wireless networkconnection to a nearby access point and thereby reach a host computer toupload or download data. In another configuration, the robot maycommunicate with a cloud machine though a common wireless networkcarrier though an LTE or 3G network. In an embodiment, using the datainterface of the port or the wireless interface the robot port computer104 may download from the robot 102 data comprising a list ofdeliveries, a history of the robot's, and communications between therobot and other computers or received via the GUI. In some instances,the robot port computer 104 or host computer may upload data to therobot 102 including, for example, software updates, map or facilityupdates, and data used to identify building-specific features such asdoors. In some embodiments, port computer 104 or another host computeris programmed to obtain, via a network, environment data forenvironments other than the one in which robot 102 is located, includingtraversal data obtained from other robots that have operated in otherenvironments. The other environments may be closely similar to the localenvironment or different. For example, if the local environment is abuilding structure that has been constructed according to a plan thathas been replicated to construct other similar buildings in otherlocations, then traversal data obtained from other robots that aregeographically distant may be relevant in resolving traversal ofobstructions or features of the local environment. Furthermore, robotport computer 104 may act as an intermediary to communicate data betweenrobots 102 deployed within the building or on campus.

In an embodiment, a facilities access computer 106 provides access tobuilding features that accommodate the robot 102. The facilities accesscomputer 106 may provide an application programming interface (API) thatthe robot 102 is programmed to call with instructions and dataconfigured to direct the facilities access computer to operateelevators, request operation of electronic doors, or control securitysensors. In an embodiment, the facilities access computer 106communicates with the electronic systems within the building such aselevators, door locks, door opening systems, security sensors, and thelike.

In an embodiment, facilities computer 108 is programmed with supervisoryfunctions for one or more robots 102, and provides an interface for anoperator to communicate with the robot. The facilities computer 108 maybe programmed to respond to requests made by the robot 102 duringautonomous mapping. The facilities computer 108 may deploy the robot 102on pick-ups, deliveries, or other tasks.

In some embodiments, the facilities computer 108 may provide dataregarding the location of temporary obstacles in the environment.Examples include holiday decorations, large crowds, and temporaryinstallations. In some embodiments, the facilities computer 108 isprogrammed to receive data from sensors around the building or campusincluding, for example, moisture sensors, smoke detectors, securitycameras, and the like. Additionally, the facilities computer 108 mayhave access to data describing the time and location of scheduled eventssuch as carpet cleanings, irrigation schedules, and ongoingconstruction. The data may be maintained in a persistent memory ordatabase and associated with an anticipated expiration date and/or time.The data may be communicated directly to the robot 102 via wirelesscommunications or using the robot port computer 104.

In an embodiment, a remote computer 110 in FIG. 1 comprises a computerthat is not local to the robot 102 and is not located within thebuilding or campus in which the robot 102 is deployed. In an embodiment,a remote computer 102 may communicate data to the robot 102 such as, forexample, weather data, news and public interest stories, other sourcesthat provide data used by the robot 102. In some instances, a remotecomputer 110 may be, or communicate with, a personal electronic deviceof a human user who has arranged a delivery. In such instances, theremote computer 110 may be a Short Message Service (SMS) server,Multimedia Message Service (MMS) server, a web server, or an applicationserver.

3. Route Planning Process

FIG. 2 is a flowchart of an example process for autonomously mapping afloor of a building, according to some embodiments.

In an embodiment, a process 200 as seen in FIG. 2 may be performed by arobot 102 to generate a floor map used in planning a route through abuilding or campus having a set of buildings connected byrobot-navigable pathways. FIG. 2, and each other flow diagram in thisdisclosure, is intended to describe an algorithm or functional processthat can be used as a basis of preparing one or more computer programsfor the robot 102 or other computing elements of the environment ofFIG. 1. Furthermore, FIG. 2 is expressed at the same level of detailthat is typically used, by persons of ordinary skill in the art to whichthis disclosure pertains, to communicate among themselves about andunderstand the general plans, specifications, and algorithms that theywill later be capable of using to define specific code, instructions orother details of programming the robot 102 or other computing elementsof the environment of FIG. 1.

In an operation 202, robot 102 obtains or receives dynamic buildingdata. The dynamic building data may be received from a facilitiescomputer 108, a remote computer 110, from other robots 102, or fromother robots 102, wirelessly or via the robot port computer 104. In oneembodiment, one or more of these computers may use push notifications orother affirmative messaging systems to transmit the dynamic buildingdata to the robot 102 for analysis and use in digital mapping. Inanother embodiment, the robot 102 may periodically transmit one or morepolling messages to any of the aforementioned computers to requestthen-current dynamic building data. In still another embodiment, therobot 102 may autonomously periodically initiate one or more calls toprogrammatic APIs, using wireless network messages that contain aparameterized URL or other payload that is sufficient to directly call adata service of a remotely located computer that is also coupled to thepublic internet, or to a networked computer that is associated with abuilding, campus, or other aspect of the local operating environment.For example, robot 102 may be programmed to form, internally, an HTTPrequest that contains a parameterized URL as a payload and that isconfigured to call a remote weather data service computer and to requestthen-current weather conditions that are associated with the robot'slocal operating environment. The robot may be programmed to receive aresponse message that contains structured data describing local weatherconditions and to extract values such as current precipitation,forecasted precipitation, or other current or forecasted conditions thatmay affect operation of the robot in the local environment. The samerequest-response process may be used for other data sources such asfacilities computer 108, remote computer 110, digital weather stations,or other computers that are associated with or configured to store andserve local building information, local environment information, or datathat has been sensed and reported by other robots in or near the sameoperating environment.

Example dynamic building data that may be received from any of theaforementioned data sources, such as facilities computer 108 and remotecomputer 110, include building schedule data such as carpet cleaningschedules, scheduled renovations to a building area, such as a hallwayor room, scheduled events where congestion is expected for a timeinterval, scheduled events where temporary obstacles, BEO items such astables, chairs or bars, decorations, or other items will be placed for atime interval, and seasonal decorations resulting in static obstaclesfor a defined number of weeks. The dynamic building data may includelatitude-longitude values and/or room designations for a location of anobstacle and/or a time period associated with the obstacle.

Additionally or alternatively, dynamic building data may include localweather data such as precipitation, wind direction and speed, andoutdoor temperatures.

Data received from other robots 102 may include real-time sensor dataassociated with locations within the campus or building. The sensor datamay include data indicating a large crowd of people, a spill, actualweather conditions, and the like.

In an operation 204, the robot 102 updates a robot-readable digital mapbased on the dynamic building data. Operation 204 may comprise updatinga cost table or cost map that is maintained separately from digitalgeographical map data. In an embodiment, a robot-readable map comprisesstored digital data comprising feature items representing physicalfeatures where each feature item is associated with a cost, where costvalues are maintained either directly in geographical map data or in aseparate cost table or cost map. The specific data structures that areused in various embodiments are not critical, and others may be used,provided that the robot 102 stores data relating to costs for featuresin an operating environment, with some form of link or association tolocation data indicating a physical or geographical location or positionof the features. Some feature items have a stationary cost. For example,feature items corresponding to walls may have a permanent, fixed cost.

Other feature items may have a variable cost that is adjusted ormodified according to the dynamic building data that is received. Forexample, assume the dynamic building data indicates an event isscheduled that would cause increased congestion in a particular area.Based on the dynamic building data, the cost associated with one or morefeature items corresponding to the particular area may be increased toreflect an increased difficulty in navigating the location associatedwith the feature item. The cost associated with a particular pixelaffected by the dynamic building data may lower to reflect a decreaseddifficulty in navigating a location associated with the feature item ifan obstacle is removed.

In an embodiment, to determine a new cost associated with each of theobstacles associated with the dynamic building data, multiple layers ofmaps are generated, each layer being generated from a different sourceof dynamic building data and having a different cost associated witheach feature item. For example, a layer generated from weather data mayhave variable costs for feature items corresponding to outdoor areas andzero costs for walls and other permanent obstacles. The variable costsmay be based on the weather conditions. For example, a light breeze isassociated with a lower cost than pouring rain.

To calculate a cost associated with a particular pixel across all of thelayers of the maps, the costs associated with each pixel is summed. Foreach pixel, the cost associated with the pixel is:

C _(p)=Σ(C _(o) ,C _(a) ,C _(b), . . . )

where C_(p) is the total cost associated with the pixel, C_(o) is thecost associated with the pixel without considering the dynamic buildingdata, C_(a) is the cost associated with first dynamic building data,C_(b) is the cost associated with second dynamic building data.Additional dynamic building data may be added to this sum as the robot102 receives additional dynamic building data.

In some embodiments, the map may comprise pixels in a grid, or a graphof nodes connected by edges. The costs are associated with nodes and/oredges using the techniques described above.

In an operation 206, the robot 102 determines whether it has received atask from a human or computer operator. The task may be a pick-up of anitem to be delivered elsewhere or a delivery of an item to anotherlocation in the campus or building. The task may be received via WIFI oranother communications network. The task includes an identification ofits origin location and its destination location. If no task isreceived, the process 200 returns to operation 202.

If a task is received, in an operation 208, the robot 102 determines aroute and estimated time of arrival (ETA). For a delivery, the ETA isbased on an amount of time required to go from the origin location tothe destination location. For a pick-up task, the origin location is acurrent location and a destination location is a pick-up location. For adelivery task, the origin location is a current location of the item tobe delivered, e.g., a front desk or storage room.

The route and ETA are determined by the robot using a graph searchalgorithm. Examples of graph search algorithms that can be used with agrid or node-network map include, but are not limited to, Dijkstra,A-Star (A*), D-Star, and D-Star Lite. These algorithms determine atravel time using multiple possible routes by calculating velocitiesover the various paths. In addition, ETA values may be used to sort aplurality of different available routes and select a best route, or maybe displayed using the touchscreen display of robot 102. The algorithmscalculate an angular and linear velocity where the velocity overportions of the routes changes based on the total cost associated withthe pixels. In one embodiment, robot 102 takes the route associated withthe shortest travel time, that is, the fastest route. In anotherembodiment, the route is determined as an optimized route from thecurrent location to the destination location that traverses a fewestnumber of personnel locations in the building or campus in whichpersonnel are likely to be located; this approach causes the robot tominimize disruption with human personnel and/or reduces the risk ofdisruption of the robot's traversal of the route.

In an operation 210, the robot traverses the selected route to completethe pick-up or delivery task. After the operation 210, the process 200returns to operation 202. In some embodiments, the robot 102 maycontinue to perform operations 202 and 204 while performing operations208, 210.

Thus, in one embodiment, this disclosure provides a computer-implementedmethod for guiding movement of a robot comprising receiving digitallystored dynamic building data that describes a temporary condition of abuilding or campus comprising a set of buildings and a location of thetemporary condition; updating, from the dynamic building data, one ormore map layers among a plurality of map layers of a digital map bycalculating an increased cost of navigation of the portion of the mapcorresponding to the location of the temporary condition, the increasedcost based on the description of the temporary condition; in response toreceiving a task that is associated with a destination location,determining a route from a current location of the robot to thedestination location from the plurality of map layers of the map using agraph search algorithm based in part upon the location of the temporarycondition and the increased cost; causing the robot to traverse theroute from the current location to the destination location. Otherembodiments may involve other steps, functions and operations.

Using these techniques, digital dynamic building data about currentoperating conditions, weather, objects, obstructions or obstacles, allhaving some relevance or association to a robot operating environment,may be obtained by a robot, transformed into cost data, and used inprogrammed algorithms to modify a route, terminate a navigation ortraversal, modify a task, and/or form a notification message that isdigitally transmitted elsewhere. The physical operation of the robot maybe modified based upon the transformation and algorithms so that therobot traverses a different route, does not traverse at all, or takesother responsive action in response to the dynamic building data.Embodiments have specific value and utility in the case of robots thatare constructed and programmed for use in protected interior buildingenvironments, but may need to traverse unprotected exterior routes orpaths between buildings of a campus when adverse weather can impairtraversal. In such a case, obtaining and processing the dynamic buildingdata can result in routing the robot on a route that only uses protectedinterior paths, terminating a traversal, or updating an ETA value.Embodiments also have specific value and utility in operatingenvironments that are subject to the periodic introduction of temporaryobstacles into the environment, such as hotels, hospitals and schools.In that case, obtaining and processing the dynamic building data canresult in routing the robot on a route that only uses non-obstructedpaths or paths where limited human activity is expected, terminating atraversal, or updating an ETA value.

4. MAPS

FIG. 3 is a portion of a pixel-level diagram of a robot-generated mapunder first conditions, according to various embodiments. The diagram300 comprises a grid of pixels each assigned a cost to navigate. Thewhite pixels indicate a zero cost to navigate, meaning that the locationcorresponds to open space. Dark gray pixels indicate an infinite cost tonavigate, indicating that the location corresponds to a wall orprohibited area. The medium gray pixels correspond to areas having anincreased, but not infinite, cost to navigate corresponding to a doorwayor small area that may be difficult to navigate. In FIG. 3, door 302,when closed, is associated with a high cost. The robot 102 may directthe facilities access computer 106 to open the door 302, reducing thecost associated with the affected pixels. Area 304 may be an outdoorarea on the other side of door 302. As depicted, the cost associatedwith traversing area 304 has a very low cost as would be the case if,for example, the weather is clear and sunny with no wind.

FIG. 4 is a portion of a pixel-level diagram of a robot-generated mapunder second conditions, according to various embodiments. The diagram400 comprises a grid of pixels each assigned a cost to navigate. Thewhite pixels indicate a zero cost to navigate, meaning that the locationcorresponds to open space. Dark gray pixels indicate an infinite cost tonavigate, indicating that the location corresponds to a wall orprohibited area. The medium gray pixels correspond to areas having anincreased, but not infinite, cost to navigate corresponding to a doorwayor small area that may be difficult to navigate. In FIG. 4, door 402,when closed, is associated with a high cost. The robot 102 may directthe facilities access computer 106 to open the door 402, reducing thecost associated with the affected pixels. Area 404 may be an outdoorarea on the other side of door 402. As depicted, the cost associatedwith traversing area 404 has a very high cost as would be the case if,for example, the weather is raining or inclement.

FIG. 5 is an example of a robot-generated map 500 of a floor in abuilding, according to various embodiments. The map 500 includes anannotation 502 of the floor of the building from which the map wasgenerated. White area 504 correspond to spaces that a navigable by therobot including hallway and larger rooms. Gray areas 506 include areasthat the robot can navigate within but has a higher cost of doing so.These areas may include, for example, bathrooms, small rooms or corners,or cluttered areas. Black lines 508 correspond to interior or exteriorwalls. Elevators 508 may be used by the robot 102 to navigate betweenfloors.

The robot-generated map may be updated based on dynamic building data.The pixels corresponding to any affected areas may be modified toindicate an increased or decreased cost of navigation. In an embodiment,the robot-generated map comprises one or more layers. Additional layersreflecting dynamic building data may be layered over map 500. Whendynamic building data is received, a layer may be generated based on thedynamic building data. If the dynamic building data is associated withan end time or with a specific time period, the layer may be removed ata specified time.

5. User Interface

FIG. 6 is a portion of an example user interface describing ananticipated route and estimated time of arrival, according to variousembodiments. The user interface 600 may be displayed to a user using atouchscreen or other display device on or connected to robot 102. Inother embodiments, the user interface 600 may be presented to the userwithin an application or web application executed by facilities computer108. In some embodiments, the user interface 600 may be part of ahypertext markup language (HTML) email message or other electronicmessage sent to a user device. The user interface 600 may be generatedby the robot 102 in order to communicate its status with a user. Forexample, the user interface 600 may be generated to indicate an ETA toan operator. In the illustrated example, user interface 600 comprises amessage that says, “Task received. I will arrive at room 314 in 7minutes. I anticipate a 3 minute delay because weather is making thebreezeway too wet for me to navigate. I will be travelling along theservice corridor instead.”

6. Hardware Overview

According to one embodiment, the techniques described herein areimplemented by one or more special-purpose computing devices. Thespecial-purpose computing devices may be hard-wired to perform thetechniques, or may include digital electronic devices such as one ormore application-specific integrated circuits (ASICs) or fieldprogrammable gate arrays (FPGAs) that are persistently programmed toperform the techniques, or may include one or more general purposehardware processors programmed to perform the techniques pursuant toprogram instructions in firmware, memory, other storage, or acombination. Such special-purpose computing devices may also combinecustom hard-wired logic, ASICs, or FPGAs with custom programming toaccomplish the techniques. The special-purpose computing devices may bedesktop computer systems, portable computer systems, handheld devices,networking devices or any other device that incorporates hard-wiredand/or program logic to implement the techniques.

For example, FIG. 7 is a block diagram that illustrates a computersystem 700 upon which an embodiment of the invention may be implemented.Computer system 700 includes a bus 702 or other communication mechanismfor communicating information, and a hardware processor 704 coupled withbus 702 for processing information. Hardware processor 704 may be, forexample, a general purpose microprocessor.

Computer system 700 also includes a main memory 706, such as a randomaccess memory (RAM) or other dynamic storage device, coupled to bus 702for storing information and instructions to be executed by processor704. Main memory 706 also may be used for storing temporary variables orother intermediate information during execution of instructions to beexecuted by processor 704. Such instructions, when stored innon-transitory storage media accessible to processor 704, rendercomputer system 700 into a special-purpose machine that is customized toperform the operations specified in the instructions.

Computer system 700 further includes a read only memory (ROM) 708 orother static storage device coupled to bus 702 for storing staticinformation and instructions for processor 704. A storage device 710,such as a magnetic disk, optical disk, or solid-state drive is providedand coupled to bus 702 for storing information and instructions.

(Computer system 800 may be coupled via bus 802 to a display 812, suchas a cathode ray tube (CRT) or liquid crystal display (LCD), fordisplaying information to a computer user. An input device 814,including alphanumeric and other keys, is coupled to bus 802 forcommunicating information and command selections to processor 804.Another type of user input device is cursor control 816, such as amouse, a trackball, or cursor direction keys for communicating directioninformation and command selections to processor 804 and for controllingcursor movement on display 812. This input device typically has twodegrees of freedom in two axes, a first axis (e.g., x) and a second axis(e.g., y), that allows the device to specify positions in a plane.Display 812 may also be touch-enabled for communicating gestures, touchinteractions, and other user interactions to processor 804.

Computer system 800 may implement the techniques described herein usingcustomized hard-wired logic, one or more ASICs or FPGAs, firmware and/orprogram logic which in combination with the computer system causes orprograms computer system 800 to be a special-purpose machine. Accordingto one embodiment, the techniques herein are performed by computersystem 800 in response to processor 804 executing one or more sequencesof one or more instructions contained in main memory 806. Suchinstructions may be read into main memory 806 from another storagemedium, such as storage device 810. Execution of the sequences ofinstructions contained in main memory 806 causes processor 804 toperform the process steps described herein. In alternative embodiments,hard-wired circuitry may be used in place of or in combination withsoftware instructions.

The term “storage media” as used herein refers to any non-transitorymedia that store data and/or instructions that cause a machine tooperate in a specific fashion. Such storage media may comprisenon-volatile media and/or volatile media. Non-volatile media includes,for example, optical disks, magnetic disks, or solid-state drives, suchas storage device 810. Volatile media includes dynamic memory, such asmain memory 806. Common forms of storage media include, for example, afloppy disk, a flexible disk, hard disk, solid-state drive, magnetictape, or any other magnetic data storage medium, a CD-ROM, any otheroptical data storage medium, any physical medium with patterns of holes,a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip orcartridge.

Storage media is distinct from but may be used in conjunction withtransmission media. Transmission media participates in transferringinformation between storage media. For example, transmission mediaincludes coaxial cables, copper wire and fiber optics, including thewires that comprise bus 802. Transmission media can also take the formof acoustic or light waves, such as those generated during radio-waveand infra-red data communications.

Various forms of media may be involved in carrying one or more sequencesof one or more instructions to processor 804 for execution. For example,the instructions may initially be carried on a magnetic disk orsolid-state drive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 800 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 802. Bus 802 carries the data tomain memory 806, from which processor 804

retrieves and executes the instructions. The instructions received bymain memory 806 may optionally be stored on storage device 810 eitherbefore or after execution by processor 804.

Computer system 800 also includes a communication interface 818 coupledto bus 802. Communication interface 818 provides a two-way datacommunication coupling to a network link 820 that is connected to alocal network 822. For example, communication interface 818 may be anintegrated services digital network (ISDN) card, cable modem, satellitemodem, or a modem to provide a data communication connection to acorresponding type of telephone line. As another example, communicationinterface 818 may be a local area network (LAN) card to provide a datacommunication connection to a compatible LAN. Wireless links may also beimplemented. In any such implementation, communication interface 818sends and receives electrical, electromagnetic or optical signals thatcarry digital data streams representing various types of information.WiFi or LTE may be used for wireless communication.

Network link 820 typically provides data communication through one ormore networks to other data devices. For example, network link 820 mayprovide a connection through local network 822 to a host computer 824 orto data equipment operated by an Internet Service Provider (ISP) 826.ISP 826 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the“Internet” 828. Local network 822 and Internet 828 both use electrical,electromagnetic or optical signals that carry digital data streams. Thesignals through the various networks and the signals on network link 820and through communication interface 818, which carry the digital data toand from computer system 800, are example forms of transmission media.

Computer system 800 can send messages and receive data, includingprogram code, through the network(s), network link 820 and communicationinterface 818. In the Internet example, a server 830 might transmit arequested code for an application program through Internet 828, ISP 826,local network 822 and communication interface 818.

The received code may be executed by processor 804 as it is received,and/or stored in storage device 810, or other non-volatile storage forlater execution.

In the foregoing specification, embodiments of the invention have beendescribed with reference to numerous specific details that may vary fromimplementation to implementation. The specification and drawings are,accordingly, to be regarded in an illustrative rather than a restrictivesense. The sole and exclusive indicator of the scope of the invention,and what is intended by the applicants to be the scope of the invention,is the literal and equivalent scope of the set of claims that issue fromthis application, in the specific form in which such claims issue,including any subsequent correction.

What is claimed is:
 1. A computer-implemented method for controllingmovement of an autonomous robot comprising: obtaining digitally storeddynamic building data describing a set of one or more temporaryconditions, the dynamic building data comprising, for each temporarycondition of the set of one or more temporary conditions, a location ofthe temporary condition and a description of the temporary condition;updating, from the dynamic building data, digital cost data associatedwith one or more features of a digital map by calculating, for eachtemporary condition of the set of one or more temporary conditions, anincreased cost of navigation associated with the location of thetemporary condition, the increased cost based on the description of thetemporary condition; in response to receiving a task that is associatedwith a destination location, determining whether at least one route froma current location of the robot to the destination location is possible,based in part upon the location of each temporary condition of the setof one or more temporary conditions and the increased cost associatedwith the location.
 2. The method of claim 1, wherein the dynamicbuilding data further comprises, for each temporary condition of the setof one or more temporary conditions, a time frame of the temporarycondition.
 3. The method of claim 2, wherein determining whether atleast one route to the destination location is possible is further basedon is based on a current time and the time frame of each temporarycondition of the set of one or more temporary conditions.
 4. The methodof claim 1, further comprising: in response to determining that at leastone route to the destination location is possible, selecting aparticular route to the destination location; causing the robot totraverse the particular route.
 5. The method of claim 4, whereinselecting the particular route comprises determining the particularroute as a fastest route from the current location of the robot to thedestination location by calculating, for each temporary condition of theset of one or more temporary conditions, an expected velocity of therobot over a portion of the digital map corresponding to the location ofthe temporary condition.
 6. The method of claim 4, wherein selecting theparticular route comprises determining the route as a shortest routefrom the current location of the robot to the destination location bycalculating a plurality of different routes having different estimatedtime of arrival (ETA) values, each different route in the plurality ofdifferent routes not including the location of one or more temporaryconditions of the set of one or more temporary conditions.
 7. The methodof claim 4, wherein selecting the particular route comprises determiningthe route as an optimized route from the current location of the robotto the destination location that traverses a fewest number of locationsin which personnel are likely to be located and not including at leastthe location of a particular temporary condition of the set of one ormore temporary conditions.
 8. The method of claim 4 further comprising:calculating an estimated time of arrival of the robot at the destinationlocation based on the particular route; causing generation of anotification indicating the estimated time of arrival of the robot atthe destination location.
 9. The method of claim 1 further comprising,in response to determining that no route to the destination location ispossible, rejecting the task.
 10. The method of claim 1 furthercomprising, in response to determining that no route to the destinationlocation is possible, causing generation of a notification indicatingthat the task cannot be completed.
 11. A computer system comprising: oneor more processors; a non-transitory computer-readable medium coupled tothe one or more processors and storing one or more sequences of programinstructions which, when executed by the one or more processors, causethe one or more processors to perform: obtaining digitally storeddynamic building data describing a set of one or more temporaryconditions, the dynamic building data comprising, for each temporarycondition of the set of one or more temporary conditions, a location ofthe temporary condition and a description of the temporary condition;updating, from the dynamic building data, digital cost data associatedwith one or more features of a digital map by calculating, for eachtemporary condition of the set of one or more temporary conditions, anincreased cost of navigation associated with the location of thetemporary condition, the increased cost based on the description of thetemporary condition; in response to receiving a task that is associatedwith a destination location, determining whether at least one route froma current location of a robot to the destination location is possible,based in part upon the location of each temporary condition of the setof one or more temporary conditions and the increased cost associatedwith the location.
 12. The system of claim 11, wherein the dynamicbuilding data further comprises, for each temporary condition of the setof one or more temporary conditions, a time frame of the temporarycondition.
 13. The system of claim 12, wherein determining whether atleast one route to the destination location is possible is further basedon is based on a current time and the time frame of each temporarycondition of the set of one or more temporary conditions.
 14. The systemof claim 11, further comprising instructions which, when executed by theone or more processors, cause: in response to determining that at leastone route to the destination location is possible, selecting aparticular route to the destination location; causing the robot totraverse the particular route.
 15. The system of claim 14, whereinselecting the particular route comprises determining the particularroute as a fastest route from the current location of the robot to thedestination location by calculating, for each temporary condition of theset of one or more temporary conditions, an expected velocity of therobot over a portion of the digital map corresponding to the location ofthe temporary condition.
 16. The system of claim 14, wherein selectingthe particular route comprises determining the route as a shortest routefrom the current location of the robot to the destination location bycalculating a plurality of different routes having different estimatedtime of arrival (ETA) values, each different route in the plurality ofdifferent routes not including the location of one or more temporaryconditions of the set of one or more temporary conditions.
 17. Thesystem of claim 14, wherein selecting the particular route comprisesdetermining the route as an optimized route from the current location ofthe robot to the destination location that traverses a fewest number oflocations in which personnel are likely to be located and not includingat least the location of a particular temporary condition of the set ofone or more temporary conditions.
 18. The system of claim 14, furthercomprising instructions which, when executed by the one or moreprocessors, cause: calculating an estimated time of arrival of the robotat the destination location based on the particular route; causinggeneration of a notification indicating the estimated time of arrival ofthe robot at the destination location.
 19. The system of claim 11,further comprising instructions which, when executed by the one or moreprocessors, cause in response to determining that no route to thedestination location is possible, rejecting the task.
 20. The system ofclaim 11, further comprising instructions which, when executed by theone or more processors, cause in response to determining that no routeto the destination location is possible, causing generation of anotification indicating that the task cannot be completed.